Digital image and video capture and playback has become a standard feature in many handheld consumer electronic products such as digital still cameras (DSCs), cellular phones telephone, digital video cameras, and PDAs. As processors for such devices become more powerful, the market requires higher and higher image and video resolution. For example, real-time video at VGA (640×480) or D1 (720×480) resolution is a common requirement. Further, image and video resolution will soon reach HD (1080p@30, 1920×1080). One challenge for manufacturers of handheld consumer electronic products is cost effectively supporting the tremendous memory bandwidth (speed) needed for the ever increasing digital image data resolution.
In many handheld consumer electronic products, video raw data is captured by a sensor and fed into a preview engine for processing. After processing, the resulting video sequence is stored in an external (i.e., off-chip) memory. A video encoder then fetches the video sequence from the external memory to encode it. In addition, during encoding, the video encoder both encodes a picture and stores a decoded copy of the picture in the external memory for use in prediction of a subsequent picture. The video encoder then fetches the decoded copy from the external memory when needed to perform prediction. Thus, the video encoder is fetching both pictures to be encoded and prior pictures from external memory to perform the encoding, and storing prior pictures in the external memory.
The real-time video data transfer from the preview engine to external memory and to and from external memory to the video encoder requires a lot of memory bandwidth if the video resolution is D1 (720×480) or higher. However, memory bandwidth is limited in many digital video products due to both cost and power constraints. Accordingly, reducing memory bandwidth requirements for processing video data is desirable.